home *** CD-ROM | disk | FTP | other *** search
/ SGI Developer Toolbox 6.1 / SGI Developer Toolbox 6.1 - Disc 1.iso / toolbox / src / exampleCode / opengl / lmwrap / ogl / lm.h < prev    next >
Encoding:
C/C++ Source or Header  |  1996-11-11  |  3.2 KB  |  103 lines

  1. /*
  2.  * Copyright (c) 1995, Silicon Graphics, Inc.
  3.  *
  4.  * Permission to use, copy, modify, distribute, and sell this software and
  5.  * its documentation for any purpose is hereby granted without fee, provided
  6.  * that the name of Silicon Graphics may not be used in any advertising or
  7.  * publicity relating to the software without the specific, prior written
  8.  * permission of Silicon Graphics.
  9.  *
  10.  * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND,
  11.  * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY
  12.  * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
  13.  *
  14.  * IN NO EVENT SHALL SILICON GRAPHICS BE LIABLE FOR ANY SPECIAL, INCIDENTAL,
  15.  * INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES WHATSOEVER
  16.  * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER OR NOT ADVISED OF THE
  17.  * POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF LIABILITY, ARISING OUT OF OR IN
  18.  * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  19.  *
  20.  * OpenGL(TM) is a trademark of Silicon Graphics, Inc.
  21.  */
  22. /*----------------------------------------------------------------------------
  23.  *
  24.  * file   : lm.h
  25.  *
  26.  * Author : Yusuf Attarwala
  27.  * Date   : Apr 95
  28.  *
  29.  *---------------------------------------------------------------------------*/
  30.  
  31. #include "lmwrap.h"
  32.  
  33. /* some material, lights and light models */
  34.  
  35. /* materials */
  36.  
  37. #define MAT_BRASS      10
  38. #define MAT_REDPLASTIC 11
  39. #define MAT_SILVER     12
  40. #define MAT_GRNPLASTIC 13
  41.  
  42. static float mat_brass[]  =      {AMBIENT,  0.25,0.15,0.0,
  43.                                   DIFFUSE,  0.65,0.5, 0.35,
  44.                                   SPECULAR, 0.9, 0.6, 0.0,
  45.                                   SHININESS,10.0,
  46.                                   LMNULL };
  47.  
  48. static float mat_silver[] =      {AMBIENT,  0.4, 0.4, 0.4,
  49.                   DIFFUSE,  0.3, 0.3, 0.3,
  50.                   SPECULAR, 0.9, 0.9, 0.95,
  51.                   SHININESS,25.0,
  52.                   LMNULL };
  53.  
  54.  
  55. static float mat_redplastic[] =  {AMBIENT,  0.3, 0.1, 0.1,
  56.                   DIFFUSE,  0.5, 0.1, 0.1,
  57.                   SPECULAR, 0.45,0.45,0.45,
  58.                   SHININESS,30.0,
  59.                   LMNULL };
  60.  
  61. static float mat_grnplastic[] =  {AMBIENT,  0.1, 0.3, 0.1,
  62.                       DIFFUSE,  0.1, 0.5, 0.1,
  63.                       SPECULAR, 0.45,0.45,0.45,
  64.                       SHININESS,30.0,
  65.                       LMNULL };
  66.  
  67.  
  68.  
  69. /* light models */
  70.  
  71. #define LTM_INFINITE   20
  72. #define LTM_LOCAL      21
  73. #define LTM_INF_TWO    22
  74.  
  75. static float infinite[] =         {AMBIENT, 0.3, 0.3, 0.3,
  76.                                    LOCALVIEWER,0.0,
  77.                                    LMNULL };
  78.  
  79. static float local[] =            {AMBIENT, 0.3, 0.3, 0.3,
  80.                                    LOCALVIEWER,1.0,
  81.                                    ATTENUATION,1.0,0.0,
  82.                                    LMNULL };
  83.  
  84. static float inf_twosided[] =     {AMBIENT, 0.3, 0.3, 0.3,
  85.                                    LOCALVIEWER,0.0,
  86.                                    TWOSIDE,1.0,
  87.                                    LMNULL };
  88.  
  89.  
  90. /* and some lights */
  91.  
  92. #define LT_INF_WHITE   30
  93. #define LT_INF_RED     31
  94.  
  95. static float white_inf_light[] = {LCOLOR,   1.0,1.0,1.0,
  96.                                   POSITION, 0.0,0.0,1.0,0.0,
  97.                                   LMNULL };
  98.  
  99. static float red_inf_light[] =   {LCOLOR,   0.9,0.6,0.6,
  100.                                   POSITION, 1.0,0.0,1.0,0.0,
  101.                                   LMNULL };
  102.  
  103.